Kedy "zatuhne" UPDATE na IB servri ?

Otázka od: belcik@centrum.sk

9. 9. 2002 14:09

DB aplikacia, Delphi 5 Prof., IB 6, IBX.

Kod:
...
StartTransaction
UPDATE TABULKA ...
Commit
...

Problem:
Dva tyzdne vsetko OK, zrazu mi horeuvedeny UPDATE zostal visiet
na servri, tym padom mi zatuhol aj program. Nepomohlo nic,
program som musel resetovat (CTRL+F2). Po kazdom takomto
spusteni,zatuhnuti a resetovani sa mi zvysilo "Number of
attachments" na
servri. Ked som restartol IB server, tak bolo
zase OK a program normalne prebehol. Transakcia nema nijake
parametre. Okrem tohoto programu bola k IB pripojena len IB
Console. Viac sa mi uz taketo zatuhnutie nepodarilo dosiahnut,
takze nemozem zistit, cim to bolo sposobene. Neviem, ci to bol
DEADLOCK, lebo aj ked som zatvoril IB Console a program zostal
sam pripojeny k servru, tak to nepomohlo a program zostal tuhy.

Otazka:
V akych pripadoch zatuhne UPDATE na IB servri ?

KOnkretne ten kod vyzera takto:
  try
    IBSQL1.SQL.Clear;
    IBSQL1.SQL.Add('UPDATE ... velky update asi 30 poli');

    IBTransaction1.StartTransaction;

    IBSQL1.ExecQuery;

    IBTransaction1.Commit;
    Result:=true;
  except
   on E:Exception do
    begin
      IBTransaction1.Rollback;
    end;
  end;


Dakujem za poucenie.
Stano Belcik


----------------------------------------------------------------
http://www.webpark.sk/novy-web.htm - Profesionálny webhosting

Odpovedá: Jaroslav Kohák

10. 9. 2002 13:07

IB server po urcitem mnozstvi provedenych transakci nad databazi provadi
"setrepani" dat. (v datadase properties najdes sweep interval)
Pokud provadis hodne insertu a updatu spusti se toto setrepani. U vetsich
databazi (100MB) to muze trvat i hodinu a behem teto doby nedojde ke zpracovani
zadneho SQL dotazu. Nemuze to byt ono?
Tymi

-----Original Message-----
From: belcik@centrum.sk [mailto:belcik@centrum.sk]
Sent: Monday, September 09, 2002 8:15 AM
To: delphi-l@clexpert.cz
Subject: Kedy "zatuhne" UPDATE na IB servri ?


DB aplikacia, Delphi 5 Prof., IB 6, IBX.

Kod:
...
StartTransaction
UPDATE TABULKA ...
Commit
...

Problem:
Dva tyzdne vsetko OK, zrazu mi horeuvedeny UPDATE zostal visiet
na servri, tym padom mi zatuhol aj program. Nepomohlo nic,
program som musel resetovat (CTRL+F2). Po kazdom takomto
spusteni,zatuhnuti a resetovani sa mi zvysilo "Number of
attachments" na
servri. Ked som restartol IB server, tak bolo
zase OK a program normalne prebehol. Transakcia nema nijake
parametre. Okrem tohoto programu bola k IB pripojena len IB
Console. Viac sa mi uz taketo zatuhnutie nepodarilo dosiahnut,
takze nemozem zistit, cim to bolo sposobene. Neviem, ci to bol
DEADLOCK, lebo aj ked som zatvoril IB Console a program zostal
sam pripojeny k servru, tak to nepomohlo a program zostal tuhy.

Otazka:
V akych pripadoch zatuhne UPDATE na IB servri ?

KOnkretne ten kod vyzera takto:
  try
    IBSQL1.SQL.Clear;
    IBSQL1.SQL.Add('UPDATE ... velky update asi 30 poli');

    IBTransaction1.StartTransaction;

    IBSQL1.ExecQuery;

    IBTransaction1.Commit;
    Result:=true;
  except
   on E:Exception do
    begin
      IBTransaction1.Rollback;
    end;
  end;


Dakujem za poucenie.
Stano Belcik


----------------------------------------------------------------
http://www.webpark.sk/novy-web.htm - Profesionálny webhosting